Skip to content

QVAC-16525 infra: add iOS CI build and Device Farm test workflow (SDK)#1465

Merged
lauripiisang merged 9 commits into
mainfrom
test/sdk-ios-device-farm-testing
Apr 16, 2026
Merged

QVAC-16525 infra: add iOS CI build and Device Farm test workflow (SDK)#1465
lauripiisang merged 9 commits into
mainfrom
test/sdk-ios-device-farm-testing

Conversation

@lauripiisang

@lauripiisang lauripiisang commented Apr 9, 2026

Copy link
Copy Markdown
Contributor

🎯 What problem does this PR solve?

  • iOS builds for the SDK test consumer had no CI path — build:consumer:ios failed due to missing signing, and Device Farm execution was not wired up
  • The existing test-sdk.yml had a commented-out ios-tests job referencing a workflow that didn't exist

📝 How does it solve it?

  • New reusable workflow test-ios-sdk.yml mirroring the Android workflow structure:
    • build job (macos-14): sets up keychain/signing creds, runs qvac-test build:consumer:ios with QVAC_IOS_BUNDLE_ID override to match existing provisioning profile (io.tether.test.qvac), archives and exports IPA
    • device-farm job: uploads IPA to Device Farm, launches via Appium + XCUITest, streams app logs via pymobiledevice3 syslog live, detects consumer shutdown for early exit
    • run-producer job: identical to Android (MQTT-based, platform-agnostic)
    • cleanup job: stops Device Farm runs, downloads Customer Artifacts, uploads as GitHub Actions artifact
  • Device Farm console link surfaced in GitHub Actions job summary (both iOS and Android)
  • Reorganized Device Farm files into packages/sdk/tests-qvac/device-farm/ directory (renamed from flat device-farm-* files)
  • Updated test-sdk.yml to wire ios-tests job (targets: ios, mobile, all)
  • Updated test-android-sdk.yml references for the new file paths + added job summary link

🧪 How was it tested?

  • Multiple CI runs on test-sdk.yml with targets: ios
  • Verified IPA build, Device Farm upload, app launch on iPhone 16 Pro (iOS 26)
  • Confirmed pymobiledevice3 syslog capture works for React Native console.log output (routed via os_log at DEBUG level, invisible to Appium's syslog_relay)
  • Confirmed log collect fallback extracts logs from unified logging archive
  • Android workflow verified unaffected by file renames

@lauripiisang lauripiisang force-pushed the test/sdk-ios-device-farm-testing branch from 487b7bf to d752c4c Compare April 16, 2026 08:26
@lauripiisang lauripiisang changed the title QVAC-16525 Test: sdk ios device farm testing QVAC-16525 infra: add iOS CI build and Device Farm test workflow (SDK) Apr 16, 2026
@lauripiisang lauripiisang marked this pull request as ready for review April 16, 2026 08:37
@lauripiisang lauripiisang requested review from a team as code owners April 16, 2026 08:37
Victor-Rodzko
Victor-Rodzko previously approved these changes Apr 16, 2026
@github-actions

github-actions Bot commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

Tier-based Approval Status

**PR Tier:** TIER1

**Current Status:** ✅ APPROVED

**Requirements:**
- 1 Team Member approval ✅ (1/1)
- 1 Team Lead OR Management approval ✅ (1/1)



---
*This comment is automatically updated when reviews change.*

@lauripiisang

Copy link
Copy Markdown
Contributor Author

/review

@lauripiisang lauripiisang merged commit bfbedde into main Apr 16, 2026
19 of 21 checks passed
@lauripiisang lauripiisang deleted the test/sdk-ios-device-farm-testing branch April 16, 2026 10:30
Proletter pushed a commit that referenced this pull request May 24, 2026
#1465)

* test: sdk ios device farm poc

* test: test ios build changes in framework, attempt to improve device logs

* fix: clarify naming, fix python logging script error for ios

* fix: attempt to get logs via pymobiledevice3

* test: remove unnecessary python script, update test suite (build improvements)

* fix: add test suite termination on consumer finish for ios

* test: add device farm link to run summary, artifact ios logs

* chore: bump test suite to stable released version

* chore: use caret version instead
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants